package com.kh.pajx.sop.service.sys;

import java.util.List;
import java.util.Map;

import com.kh.pajx.sop.base.IBaseService;
import com.kh.pajx.sop.domain.SysDictionary;

/**
 * 字典信息业务逻辑接口
 * @author 马兴龙
 * @createDate 2014年6月20日 上午11:37:06
 */

public interface ISysDictionaryService extends IBaseService<SysDictionary> {
	
	/**
	 * 根据字典类型获取字典信息列表
	 * @param typeCode 字典类型编码
	 * @return List<SysDictionary> 字典信息列表
	 * @throws Exception   
	 * @author:	azzcsimp
	 * @Createdate:	2015年1月2日 下午3:11:43
	 */
	List<SysDictionary> findDicListByType(String typeCode) throws Exception;

	
	
	
	
	
	
	
	
	
	// =========================以下为需要整理或废弃方法===================================	
	
	/**
	 * 查询所有字典类型列表
	 * @return   字典类型列表
	 * @author:	azzcsimp
	 * @Createdate:	2014年6月27日 下午5:01:34
	 */
	List<String> getDicTypeNameList();
	
	/**
	 * 获取字典类型列表
	 * @return   
	 * @author:	azzcsimp
	 * @Createdate:	2014年7月1日 下午5:12:26
	 */
	List<SysDictionary> getDicTypeList();
	
	/**
	 * 根据字典类型名称查找字典列表
	 * @param dicTypeName 字典类型名称
	 * @return   字典列表
	 * @author:	azzcsimp
	 * @Createdate:	2014年7月2日 下午1:58:51
	 */
	public List<SysDictionary> getDicListByTypeName(String dicTypeName);
	
	/**
	 * 根据输入字典类型名称模糊查找匹配字典类型列表
	 * @param dicTypeName 字典类型名称
	 * @return   符合条件的字典类型列表
	 * @author:	azzcsimp
	 * @Createdate:	2014年7月1日 下午5:31:58
	 */
	List<?> getDicTypeListByTypeName(String dicTypeName);
	
	
	/**
	 * 校验字典类型编码是否已存在
	 * @param dicTypeCode 字典类型编码
	 * @return  boolean 是否存在
	 * @author:	azzcsimp
	 * @Createdate:	2014年7月2日 上午9:58:44
	 */
	boolean checkRepeatDicTypeCode(String dicTypeCode);
	
	/**
	 * 校验同一字典类型编码下，类型名称是否存在
	 * @param dicTypeCode 字典类型编码
	 * @param dicTypeName 字典类型名称
	 * @return   boolean 是否存在
	 * @author:	azzcsimp
	 * @Createdate:	2014年7月2日 上午11:40:28
	 */
	boolean checkRepeatDicTypeName(String dicTypeCode,String dicTypeName);
	
	/**
	 * 校验统一字典类型编码下，字典编码是否已存在
	 * @param dicCode 字典编码
	 * @param dicTypeCode 字典类型编码
	 * @return boolean  是否存在
	 * @author:	azzcsimp
	 * @Createdate:	2014年7月2日 上午11:44:17
	 */
	boolean checkRepeatDicCode(String dicCode,String dicTypeCode);
	
	/**
	 * 根据字典类型编码获取字典列表
	 * @return   
	 * @author:	azzcsimp
	 * @Createdate:	2014年7月1日 下午5:12:26
	 */
	public List<SysDictionary> getDicListByTypeCode(String dicTypeCode);
	
	/**
	 * 批量删除字典信息
	 * @param ids 带删除字典id数组
	 * @return int 删除数据条数
	 * @author:	azzcsimp
	 * @Createdate:	2014年7月9日 下午6:16:16
	 */
	public int delete(String[] uuids);
	
	/**
	 * 根据字典类型给字典归类
	 */
	Map<String,List<SysDictionary>> getEveryDicType();
	
}
